home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 2.1 KB | 63 lines |
- 0 WIDTH 80
- 10 REM BALL.BAS 2/16/82
- 20 REM PROGRAM BY TOM SPRINGALL
- 40 GOTO 110
- 110 T$=TIME$:X=0
- 120 FOR I = 2 TO 3:X=X*60+ VAL(MID$(T$,(3*I-2),2)):NEXT:RANDOMIZE X-32000
- 130 CLS
- 140 PRINT "The object of this game is to shoot a pea from the peashooter at the upper"
- 150 PRINT "left hand corner of the screen with the correct velocity so that it lands in"
- 160 PRINT "the tee at the bottom of the screen. The bigger the velocity you enter, the"
- 170 PRINT "farther the pea will travel. Correct velocities should range from 30-110.":PRINT
- 180 PRINT "The tee will be in a different position for each game. A scoreboard in the"
- 190 PRINT "upper right of the screen will keep track of how many shots it takes in each"
- 200 PRINT "game to hit the tee.":PRINT
- 210 PRINT "Press any key to begin.
- 220 T$=INKEY$:IF T$="" GOTO 220 ELSE IF ASC(T$)=27 GOTO 680
- 230 DIM R(80),C(80):DEF SEG:POKE 108,0:KEY OFF:E=2:F=1:B=0.05:A=B*2:CLS
- 240 LOCATE 1,48,0:PRINT STRING$(32,220);
- 250 LOCATE 2,48,0:PRINT CHR$(221);SPACE$(30);CHR$(222);
- 260 LOCATE 3,48,0:PRINT CHR$(221);" TOTAL GAMES WON IN";SPACE$(8);CHR$(222);
- 270 LOCATE 4,48,0:PRINT CHR$(221);" GAMES 1 2 3 4 5 >5 AVE ";CHR$(222);
- 280 LOCATE 5,48,0:PRINT CHR$(221);SPACE$(30);CHR$(222);
- 290 LOCATE 6,48,0:PRINT CHR$(221);SPACE$(30);CHR$(222);
- 300 LOCATE 7,48,0:PRINT STRING$(32,223);
- 310 DIM GMS(7)
- 320 P=19+CINT(58*RND):CNT=0:GOSUB 640
- 330 LOCATE 1,1,0:PRINT STRING$(2,220);:LOCATE 3,1,0:PRINT STRING$(2,223);
- 340 LOCATE 25,P-2,0: PRINT "--";CHR$(157);"--";
- 350 LOCATE 2,1,0:PRINT"o";:CNT=CNT+1:GMS(7)=GMS(7)+1
- 360 IF CNT>6 THEN H=6 ELSE H=CNT
- 370 LOCATE 6,51+H*3,0:PRINT" ^";
- 380 T$=INKEY$:IF T$<>"" THEN IF ASC(T$)=27 GOTO 680 ELSE 380
- 390 LOCATE 24,1,1:PRINT SPACE$(30);:LOCATE 24,1,1:INPUT;"VELOCITY";V
- 400 IF V<1 THEN BEEP:GOTO 390
- 410 V=V*B:E=2:F=1
- 420 FOR I = 1 TO 80
- 430 R(I)=2+CINT(A*I*I):C(I)=2+CINT(V*I)
- 440 IF C(I)>79 OR R(I)>24 GOTO 460
- 450 NEXT I
- 460 I=I-1:IF C(I+1)>79 OR R(I)=24 GOTO 490
- 470 T=CINT(SQR(24*V*V/A))
- 480 IF T<80 THEN R(I)=24:C(I)=T
- 490 FOR J=1 TO I
- 500 LOCATE E,F,0:PRINT " ";:LOCATE R(J),C(J),0:PRINT "o";:E=R(J):F=C(J)
- 510 FOR K=1 TO 100:NEXT K
- 520 NEXT J
- 530 IF R(I)=24 AND C(I)=P GOTO 560
- 540 COLOR 7,0
- 550 LOCATE E,F,0:PRINT " ";:GOTO 330
- 560 BEEP:GMS(H)=GMS(H)+1:GMS(0)=GMS(0)+1:GOSUB 640
- 570 LOCATE 24,1,1:PRINT "NEW GAME? (Y/N)";
- 580 T$=INKEY$:IF T$="" GOTO 580
- 590 IF T$="N" OR T$="n" OR T$=CHR$(27) GOTO 680
- 600 LOCATE 24,1,0:PRINT SPACE$(79);
- 610 LOCATE 25,1,0:PRINT SPACE$(79);
- 620 LOCATE 6,52,0:PRINT SPACE$(27)
- 630 GOTO 320
- 640 LOCATE 5,50,0:PRINT USING " ### ";GMS(0);
- 650 PRINT USING "###";GMS(1),GMS(2),GMS(3),GMS(4),GMS(5),GMS(6);
- 660 IF GMS(0)=0 THEN RETURN
- 670 PRINT USING "###.#";GMS(7)/GMS(0);:RETURN
- 680 CLS:KEY ON:END
-